Перем ЮнитТест;

#Область ОбработчикиСобытийМодуля

Функция Версия() Экспорт
	Возврат "3.0";
КонецФункции

Функция ПолучитьСписокТестов(МенеджерТестирования) Экспорт
	
	ЮнитТест = МенеджерТестирования;

	СписокТестов = Новый Массив;
	СписокТестов.Добавить("ТестКонструктор");
	СписокТестов.Добавить("TestConstructor");
	СписокТестов.Добавить("ТестИмя");
	СписокТестов.Добавить("ТестИмяБазовогоТипа");
	СписокТестов.Добавить("ТестИмяТипаЭлемента");
	СписокТестов.Добавить("ТестФасеты");
	СписокТестов.Добавить("ТестОпределенияТиповОбъединения");
	
	Возврат СписокТестов;

КонецФункции

#КонецОбласти

#Область ОбработчикиТестирования

Процедура ТестКонструктор() Экспорт

	ОпределениеТипа = Новый ОпределениеПростогоТипаXS;
	
	ЮнитТест.ПроверитьРавенство(ТипЗнч(ОпределениеТипа), Тип("ОпределениеПростогоТипаXS"));
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.ТипКомпоненты, ТипКомпонентыXS.ОпределениеПростогоТипа);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Фасеты.Количество(), 0);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Компоненты.Количество(), 0);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.ОпределенияТиповОбъединения.Количество(), 0);

КонецПроцедуры

Procedure TestConstructor() Export

	TypeDefinition = New XSSimpleTypeDefinition;

	ЮнитТест.ПроверитьРавенство(TypeOf(TypeDefinition), Type("XSSimpleTypeDefinition"));
	ЮнитТест.ПроверитьРавенство(TypeDefinition.ComponentType, XSComponentType.SimpleTypeDefinition);

EndProcedure

Процедура ТестИмя() Экспорт

	ОпределениеТипа = Новый ОпределениеПростогоТипаXS;

	ОпределениеТипа.Имя = "test";

	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Имя, "test");

КонецПроцедуры

Процедура ТестИмяБазовогоТипа() Экспорт

	ОпределениеТипа = Новый ОпределениеПростогоТипаXS;
	ИмяТипа = Новый РасширенноеИмяXML("http://www.w3.org/2001/XMLSchema", "string");

	ОпределениеТипа.ИмяБазовогоТипа = ИмяТипа;

	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Вариант, ВариантПростогоТипаXS.Атомарная);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.ИмяБазовогоТипа, ИмяТипа);

КонецПроцедуры

Процедура ТестИмяТипаЭлемента() Экспорт

	ОпределениеТипа = Новый ОпределениеПростогоТипаXS;
	ИмяТипа = Новый РасширенноеИмяXML("http://www.w3.org/2001/XMLSchema", "string");

	ОпределениеТипа.Вариант = ВариантПростогоТипаXS.Список;
	ОпределениеТипа.ИмяТипаЭлемента = ИмяТипа;

	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Вариант, ВариантПростогоТипаXS.Список);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.ИмяТипаЭлемента, ИмяТипа);

КонецПроцедуры

Процедура ТестФасеты() Экспорт

	ОпределениеТипа = Новый ОпределениеПростогоТипаXS;

	Фасет = Новый ФасетДлиныXS;
	Фасет.Значение = 5;

	ОпределениеТипа.Фасеты.Добавить(Фасет);

	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Фасеты.Количество(), 1);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Компоненты.Количество(), 1);

	ОпределениеТипа.Фасеты.Очистить();

	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Фасеты.Количество(), 0);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Компоненты.Количество(), 0);

КонецПроцедуры

Процедура ТестОпределенияТиповОбъединения() Экспорт

	ОпределениеТипа = Новый ОпределениеПростогоТипаXS;
	ОпределениеТипа.Вариант = ВариантПростогоТипаXS.Объединение;

	ТипОбъединения = Новый ОпределениеПростогоТипаXS;
	
	ОпределениеТипа.ОпределенияТиповОбъединения.Добавить(ТипОбъединения);

	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.ОпределенияТиповОбъединения.Количество(), 1);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Компоненты.Количество(), 1);

	ОпределениеТипа.ОпределенияТиповОбъединения.Очистить();

	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.ОпределенияТиповОбъединения.Количество(), 0);
	ЮнитТест.ПроверитьРавенство(ОпределениеТипа.Компоненты.Количество(), 0);

КонецПроцедуры

#КонецОбласти